<?php
if($access_control != "924y39c9vns8r73"){ header("location:../"); }

$venda   = new venda();
if(valida::numero($_GET["id"]) && $_GET["id"] != ''){
    $id = $_GET["id"];
    $venda->carregar($id);
    
    $_SESSION["sgm_comanda"]["id"]   = $venda->get_id();
    $_SESSION["sgm_comanda"]["data"] = data_sql($venda->get_data());
    $_SESSION["sgm_comanda"]["hora"] = $venda->get_hora();
    $_SESSION["sgm_comanda"]["id_cliente"] = $venda->get_id_cliente();
    
    $sql = "select * from sgm_venda_produto where id_venda = '$id' and id_empresa = '".$_SESSION["sgm_id_empresa"]."'";
    $db = new db(config::$driver);
    $con = $db->conecta();
    $res = $db->query($sql, $con);
    $db->close($con);
    $i = 0;
    while($produto = $db->fetch_array($res)){
        $_SESSION["sgm_comandas"][$i]["codigo"]  = $produto["codebar"];
        $_SESSION["sgm_comandas"][$i]["produto"] = $produto["nome"];
        $_SESSION["sgm_comandas"][$i]["quant"]   = $produto["quantidade"];
        $_SESSION["sgm_comandas"][$i]["medida"]  = $produto["medida"];
        $_SESSION["sgm_comandas"][$i]["v_unit"]  = $produto["valor"];
        $i++;
    }
    unset($db);
}

if(isset($_SESSION["sgm_comanda"]["data"])){
    $data = $_SESSION["sgm_comanda"]["data"];
}else{
    $data = date("Y-m-d");
}

if(isset($_SESSION["sgm_comanda"]["hora"])){
    $hora = $_SESSION["sgm_comanda"]["hora"];
}else{
    $hora = date("H:i:s");
}

if($_POST["btn_ok"] == "Ok"){
    if(valida::numero($_POST["id"]) && $_POST["id"] != '' && $_POST["id"] != 0){$id = $_POST["id"];}
    elseif(valida::numero($_POST["cliente"]) && $_POST["cliente"] != '' && $_POST["cliente"] != 0){$id = $_POST["cliente"];}
    else{$id = '';}
    
    $sql = "select id, nome from sgm_cliente where id_empresa = '".$_SESSION["sgm_id_empresa"]."' and id = '$id' and bloqueado = '0'";
    $db = new db(config::$driver);
    $con = $db->conecta();
    $res = $db->query($sql, $con);
    $db->close($con);
    $res_cli = $db->fetch_array($res);
    
    $_SESSION["sgm_comanda"]["id_cliente"] = $res_cli[0];
    
    $dia = substr($_POST["data"], 8, 2);
    $mes = substr($_POST["data"], 5, 2);
    $ano = substr($_POST["data"], 0, 4);
    
    if(valida::data($dia, $mes, $ano)){
        $_SESSION["sgm_comanda"]["data"] = $_POST["data"];
    }
    if(valida::hora($_POST["hora"])){
        $_SESSION["sgm_comanda"]["hora"] = $_POST["hora"];
    }
}

if($_POST["btn_addProd"] == "Adicionar"){
    if(valida::numero($_POST["codigo"]) && $_POST["codigo"] != '' && valida::numero($_POST["quant"])){
        $codigo = $_POST["codigo"];
        $quant  = $_POST["quant"];
        
        $sql = "select * from sgm_produto where codebar = '$codigo' and id_empresa = '".$_SESSION["sgm_id_empresa"]."'";
        $db = new db(config::$driver);
        $con = $db->conecta();
        $res = $db->query($sql, $con);
        $db->close($con);
        $produto = $db->fetch_array($res);
        
        if($produto){
            $i = 0;
            while($_SESSION["sgm_comandas"][$i]){$i++;}
            
            if($produto["quantidade"] - $quant >= 0){
                
                $_SESSION["sgm_comandas"][$i]["codigo"]  = $produto["codebar"];
                $_SESSION["sgm_comandas"][$i]["produto"] = $produto["nome"];
                $_SESSION["sgm_comandas"][$i]["quant"]   = $quant;
                $_SESSION["sgm_comandas"][$i]["medida"]  = $produto["medida"];
                $_SESSION["sgm_comandas"][$i]["v_unit"]  = $produto["val_venda"];

                header("location: ?pag=comandaSet&met=addProd");
                echo "
                    <meta http-equiv='refresh' content='0;url=?pag=comandaSet&met=addProd'>";
            }else{
                echo "<script>
                    alert('Não há ".$produto["nome"]." sulficiente no estoque!');
                    location.href = '?pag=comandaSet&met=addProd';
                </script>";
            }
        }
    }
}

if($_POST["btn_salvar"] == "Salvar"){
    $erro = 0;
    
    $venda->set_comanda(1);
    $venda->set_formapagamento(0);
    if(!$venda->set_id($_POST["id"])                                  ){ $erro = 1; }
    if(!$venda->set_id_empresa($_SESSION["sgm_id_empresa"])           ){ $erro = 1; }
    if(!$venda->set_data($_SESSION["sgm_comanda"]["data"])            ){ $erro = 1; }
    if(!$venda->set_hora($_SESSION["sgm_comanda"]["hora"])            ){ $erro = 1; }
    if(!$venda->set_id_cliente($_SESSION["sgm_comanda"]["id_cliente"])){ $erro = 1; }
    if(!$venda->set_total($_POST["total"])                            ){ $erro = 1; }
    if(!$venda->set_observacoes($_POST["observacoes"])                ){ $erro = 1; }
    
    if($erro == 0){
        $id_venda = $venda->salvar();
        
        if($id_venda != NULL){
            
            // PRODUTOS
            $sql_delete = "DELETE FROM sgm_venda_produto WHERE id_venda = '$id_venda' AND id > 0";
            $db = new db(config::$driver);
            $con = $db->conecta();
            $res = $db->query($sql_delete, $con);

            $i = 0;
            $erro_prod = 0;
            while($_SESSION["sgm_comandas"][$i]){
                /*
                $sql = "select codebar from sgm_produto where codebar = '".$_SESSION["sgm_comandas"][$i]["codigo"]."' and id_empresa = '".$_SESSION["sgm_id_empresa"]."'";

		$res = $db->query($sql, $con);
		$c = $db->fetch_array($res);
                */
                $produto = new produto();
                $produto->carregar($_SESSION["sgm_comandas"][$i]["codigo"]);
                
                $ep = 0;
                $venda_prod = new venda_produto();
                if(!$venda_prod->set_id_empresa($_SESSION["sgm_id_empresa"])           ){ $ep = 1; }
                if(!$venda_prod->set_id_venda($id_venda)                               ){ $ep = 1; }
                if(!$venda_prod->set_id_marca($produto->get_id_marca())                ){ $ep = 1; }
                if(!$venda_prod->set_id_setor($produto->get_id_setor())                ){ $ep = 1; }
                if(!$venda_prod->set_codebar($_SESSION["sgm_comandas"][$i]["codigo"])  ){ $ep = 1; }
                if(!$venda_prod->set_nome($produto->get_nome())                        ){ $ep = 1; }
                if(!$venda_prod->set_quantidade($_SESSION["sgm_comandas"][$i]["quant"])){ $ep = 1; }
                if(!$venda_prod->set_valor($produto->get_val_venda())                  ){ $ep = 1; }
                if(!$venda_prod->set_dt_venc($produto->get_dt_venc())                  ){ $ep = 1; }
                if(!$venda_prod->set_medida($produto->get_medida())                    ){ $ep = 1; }
                
                if($ep == 0){
                    $venda_prod->salvar();
                }
                unset($venda_prod);
                unset($produto);
                $erro_prod += $ep;
                $i++;
            }
            $db->close($con);
            unset($db);

            if($erro_prod == 0){
                limpa_comanda();
                echo "
                    <meta http-equiv='refresh' content='0;url=?pag=comanda'>";
            }else{
                echo "
                    <script>alert('Falha ao salvar registros!')</script>";
            }
        }else{
            echo "
                <script>alert('Falha na finalização da comanda!')</script>";
        }
    }
}

switch ($_GET["met"]){
    case "excProd":
        
        $i = $_GET["i"];
        while($_SESSION["sgm_comandas"][$i]){
            $_SESSION["sgm_comandas"][$i] = $_SESSION["sgm_comandas"][$i+1];
            $i++;
        }
        header("location: ?pag=comandaSet");
        echo "
            <meta http-equiv='refresh' content='0;url=?pag=comandaSet'>";
        
    break;
    case "limpar":
        
        limpa_comanda();
        header("location: ?pag=comandaSet");
        echo "
            <meta http-equiv='refresh' content='0;url=?pag=comandaSet'>";
        
    break;
    case "excluir":
        
        exc_comanda();
        header("location: ?pag=comanda");
        echo "
            <meta http-equiv='refresh' content='0;url=?pag=comanda'>";
        
    break;
    case "venda":
        
        $_SESSION["sgm_venda"]  = NULL;
        $_SESSION["sgm_vendas"] = NULL;
        
        $_SESSION["sgm_venda"]  = $_SESSION["sgm_comanda"];
        $_SESSION["sgm_vendas"] = $_SESSION["sgm_comandas"];
        
        exc_comanda();
        header("location: ?pag=vendaSet");
        echo "
            <meta http-equiv='refresh' content='0;url=?pag=vendaSet'>";

    break;
}

function limpa_comanda(){
    $_SESSION["sgm_comandas"] = NULL;
    $_SESSION["sgm_comanda"] = NULL;
}

function exc_comanda(){
    $sql0 = "DELETE FROM sgm_venda_produto WHERE id_venda = '".$_SESSION["sgm_comanda"]["id"]."' AND id > 0";
    $sql1 = "DELETE FROM sgm_venda WHERE id = '".$_SESSION["sgm_comanda"]["id"]."' AND id > 0 AND comanda = 1";
    
    $db = new db(config::$driver);
    $con = $db->conecta();
    $db->query($sql0, $con);
    $db->query($sql1, $con);
    $db->close($con);
    limpa_comanda();
}

function mostraListaClientes($id){
    $sql = "select id, nome from sgm_cliente where id_empresa = '".$_SESSION["sgm_id_empresa"]."' order by nome";
    $db = new db(config::$driver);
    $con = $db->conecta();
    $res = $db->query($sql, $con);
    $db->close($con);
    while ($cliente = $db->fetch_array($res)){
        echo "
        <option value='".$cliente["id"]."'";
        if($id == $cliente["id"]){echo " selected";}
        echo ">".$cliente["nome"]."</option>";
    }
}

function mostraProdutos(){
    $i = 0;
    $cont = 0;
    while($_SESSION["sgm_comandas"][$i]){
        
        if($cont == 0){
            $cont = 1;
            $class = "zb1";
        }else{
            $cont = 0;
            $class = "zb2";
        }
        
        $valor_total = $_SESSION["sgm_comandas"][$i]["v_unit"] * $_SESSION["sgm_comandas"][$i]["quant"];
        
        echo "
                            <tr class='$class'>
                                <td>".$_SESSION["sgm_comandas"][$i]["codigo"]."</td>
                                <td>".$_SESSION["sgm_comandas"][$i]["produto"]."</td>
                                <td>".$_SESSION["sgm_comandas"][$i]["quant"]."</td>
                                <td>".$_SESSION["sgm_comandas"][$i]["medida"]."</td>
                                <td>".add_0($_SESSION["sgm_comandas"][$i]["v_unit"])."</td>
                                <td>".add_0($valor_total)."</td>
                                <td><a href='?pag=comandaSet&met=excProd&i=$i' title='Remover produto da lista'>X</a></td>
                            </tr>";
        $i++;
    }
}

function mostraComandas(){
    $sql = "SELECT v.*, c.nome cliente FROM sgm_venda v, sgm_cliente c 
    WHERE v.id_empresa = '".$_SESSION["sgm_id_empresa"]."' AND v.id_cliente = c.id 
    AND dt_estorno = '0000-00-00 00:00:00' AND comanda = '1'
    ORDER BY v.id DESC";
    
    $db = new db(config::$driver);
    $con = $db->conecta();
    $res = $db->query($sql, $con);
    $db->close($con);
    $cont = 0;
    $i = 0;
    while ($venda = $db->fetch_array($res)){
        if($cont == 0){
            $cont = 1;
            $class = "zb1";
        }else{
            $cont = 0;
            $class = "zb2";
        }

        echo "
                        <tr class='$class'>
                            <td><a href='?pag=comandaSet&id=".$venda["id"]."'>".$venda["id"]."</a></td>
                            <td><a href='?pag=comandaSet&id=".$venda["id"]."'>".data_ptbr($venda["data"])." ".$venda["hora"]."</a></td>
                            <td><a href='?pag=comandaSet&id=".$venda["id"]."'>".$venda["cliente"]."</a></td>
                            <td><a href='?pag=comandaSet&id=".$venda["id"]."'>".$venda["total"]."</a></td>
                        </tr>";
        $i++;
    }
    if($i == 0){
        echo "<tr><td colspan='5'>Não há vendas</td></tr>";
    }
}

function getTotal(){
    $total = 0;
    $i = 0;
    while($_SESSION["sgm_vendas_servico"][$i]){
        $total += $_SESSION["sgm_vendas_servico"][$i]["valor"];
        $i++;
    }
    
    $i = 0;
    while($_SESSION["sgm_vendas"][$i]){
        $total += $_SESSION["sgm_vendas"][$i]["v_unit"] * $_SESSION["sgm_vendas"][$i]["quant"];
        $i++;
    }
    
    return $total;
}
